Linker

The linker is used to merge object modules and/or library code
to make a finished application. This version of the linker also
merges the run-time relocating loader with your application
in order to make a stand-alone 32-bit executable.

Unlike other linker products there is no segmentation concept,
which is either a good or a bad thing depending on your point 
of view.

If your application uses resources (most do), these will can
be manually merged in afterwards using ResEdit (another free
program from Apple). Alternatively you can set your resource
file name in the linker preferences dialog. In this box you
can also set various other defaults that users with Inside Macintosh
will be familiar with. For testing, the defaults should be OK

To invoke the linker open all the object browser windows that you
need, and select the GCC/Link menu option or the GCC/Link(partial)
menu option. In either case you must have all the libraries you need 
open to avoid errors. Typically this will include the 32 bit multiply
divide library (gcc-1.37-lib.o) and any libraries of traps needed.
You can also use shift select to select files for linking in open suitcase
windows.

There is no smart-linking concept in this application, so a program that
uses any mac trap glue code must load the entire library. However
you can build your own libraries using the 'Build library' menu
Objects in an open library will always be available for linking and will
be loaded if necessary

In the link/partial case the output is another object module (linker.o)
which you can inspect with the object browser, in the link (default)
case the output is an application with signature and default
size as given by the linker options dialog.

You can execute the new program from the finder. If you need to
debug you can invoke the Debugger() function as the first line
of your main routine. Only MacsBug is supported. Function names
are carried through into MacsBug but data segment names are not.
If you do not have MacsBug installed, your machine will crash if
you invoke Debugger().